[アップデート] Amazon DynamoDBがPrivateLink (インターフェイス型VPCエンドポイント) をサポートしました
閉域網やVPNの接続元からDynamoDBにアクセスしたい
こんにちは、のんピ(@non____97)です。
皆さんは閉域網やVPNの接続元からDynamoDBにアクセスしたいなと思ったことはありますか? 私はあります。
従来DynamoDBはGateway型のVPCエンドポイントしかサポートされていませんでした。そのため、Direct Connect(Private VIF or Tranit VIF)やSite-to-Site VPNの接続元からアクセスする際にはVPC上にプロキシを用意する必要がありました。
今回、Amazon DynamoDBがPrivateLink (インターフェイス型VPCエンドポイント) をサポートしました
AWS Blogsにも投稿されていますね。
これにより上述の悩みを解消することができます。
閉域網から定期的にDynamoDBに情報を連携するときに便利そうです。
実際にやってみました。
いきなりまとめ
- Amazon DynamoDBのインターフェイス型VPCエンドポイントを作成できるようになった
- プライベートDNS名を有効にすることはできない
- エンドポイントURLを指定する必要がある
- 以前のS3のInterface型VPCエンドポイントと同じ
やってみた
検証環境は以下のとおりです。
DynamoDBのインターフェイス型VPCエンドポイントをVPC Bに作成します。
作成する際にはプライベートDNS名を無効にしておきます。有効にすると、Private DNS can't be enabled because the service com.amazonaws.us-east-1.dynamodb does not provide a private DNS name.
と怒られてしまいます。
つまりは現時点ではDynamoDBのインターフェイス型VPCエンドポイントはプライベートDNS名をサポートしていません。そのため、アクセスする際はエンドポイントURLを明示的に指定する必要があります。S3のインターフェイス型VPCエンドポイントがGAした当初と同じような形ですね。
「プライベートDNS名の有効化とは」は以下記事にまとまっています。
数分待つとVPCエンドポイントが作成されました。
VPC A上のEC2インスタンスにEC2 Instance Connectで接続します。
接続後、AWS CLIでDynamoDBの操作ができるか確認します。
まずはエンドポイントURLを指定しない場合です。
$ aws dynamodb list-tables Could not connect to the endpoint URL: "https://dynamodb.us-east-1.amazonaws.com/"
DynamoDBのエンドポイントに接続できなかったようです。
続いて、まずはエンドポイントURLを指定する場合です。
$ dig vpce-0c8efa3dad1993dcc-e9aoiw9p.dynamodb.us-east-1.vpce.amazonaws.com ; <<>> DiG 9.16.48-RH <<>> vpce-0c8efa3dad1993dcc-e9aoiw9p.dynamodb.us-east-1.vpce.amazonaws.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 37016 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;vpce-0c8efa3dad1993dcc-e9aoiw9p.dynamodb.us-east-1.vpce.amazonaws.com. IN A ;; ANSWER SECTION: vpce-0c8efa3dad1993dcc-e9aoiw9p.dynamodb.us-east-1.vpce.amazonaws.com. 60 IN A 10.0.1.254 ;; Query time: 0 msec ;; SERVER: 10.0.0.2#53(10.0.0.2) ;; WHEN: Wed Mar 20 02:52:25 UTC 2024 ;; MSG SIZE rcvd: 114 $ aws dynamodb list-tables \ --endpoint-url https://vpce-0c8efa3dad1993dcc-e9aoiw9p.dynamodb.us-east-1.vpce.amazonaws.com { "TableNames": [ "analyzer" ] }
DynamoDBのエンドポイントに接続でき、確かにテーブル一覧を取得できました。
インターネットに抜けたくない場合に
Amazon DynamoDBがインターフェイス型VPCエンドポイントをサポートしたアップデートを紹介しました。
組織のコンプライアンスややインターネット回線の帯域が細い場合に役立ちそうですね。
この記事が誰かの助けになれば幸いです。
以上、AWS事業本部 コンサルティング部の のんピ(@non____97)でした!